Method and system for processing a data unit

ABSTRACT

A method of processing a data unit of a first protocol layer for transmission in a data unit based communication system is described, comprising the steps of passing to a second protocol layer a given data unit of said first protocol layer that is to be transmitted, determining a numeric value of a numerically quantifiable parameter associated with said given data unit of said first protocol layer, embedding said given data unit of said first protocol layer into one or more data units of said second protocol layer, performing transmission control for said one or more data units of said second protocol layer in accordance with said numeric value of said numerically quantifiable parameter.

FIELD OF THE INVENTION

The present invention relates to a method of processing a data unit in adata unit based communication system, and to a corresponding data unitbased communication system.

BACKGROUND OF THE INVENTION

A well known principle for data exchange in networks is that of dataunit exchange. This means that data to be sent is broken down intoindividual units. Rules for sending and receiving such units, as well asrules for the structure of the units themselves, are determined byso-called protocols. Protocols are sets of rules that allow thecommunication between a sending end and a receiving end, as the rulesspecify how and in what form data to be sent has to be prepared suchthat the receiving end may interpret the data and react in accordance toprotocol defined rules to which both partners in the communicationadhere. The two ends of a communication adhering to a specific protocolare also referred to as peers.

Such data units are sometimes referred to by different names, dependingon the type of protocol involved, such as packets, frames, segments,datagrams, etc. For the purpose of clarity the present description usesthe term “data unit” generically for any type of data unit associatedwith any type of protocol.

An important concept in communications using data unit exchange is thatof protocol layering. This means that a number of protocols (sometimesalso referred to as a suite) is organized in a hierarchy of layers,where each layer has specific functions and responsibilities. Theconcept of layering is well known in the art and described in manytextbooks, for example “TCP-IP illustrated, volume 1, The Protocols” byW. Richard Stevens, Addison Wesley, 1994, such that a detaileddescription is not necessary here.

The TCP/IP protocol suite is an example of a layered protocol hierarchy.A basic structure of a protocol hierarchy is defined by the OSI (OpenSystem Interconnection) layer model. At a lowest layer, which is alsoreferred to as the physical layer or L1, the functions of directlytransporting data over a physical connection are handled. Above thephysical layer, a second layer L2, which is also referred as to the linklayer is provided. The link layer L2 fulfils the function of handlingthe transport of data units over links between communication nodes.Above the link layer L2 a third layer L3 is provided, which is alsoreferred to as the network layer. The network layer handles the routingof data units in a given network. An example of a network layer protocolis the internet protocol (IP). Above the network layer, a fourth layerL4 is provided, which is also referred to as the transport layer.Examples of a transport layer protocol are the transmission controlprotocol (TCP) or the user datagram protocol (UDP).

In a data unit based communication system using a hierarchy of protocollayers, a communication comprises passing a given data unit downwardsthrough the protocol hierarchy on the sending side, and passing a dataunit upwards through the protocol hierarchy on the receiving side. Whena data unit is passed downwards, each protocol will typically, perform acertain function with respect thereto, e.g. add further information andchange or adapt the structure to specific rules of that protocol layer.Typically each protocol layer will add its own header to a data unitreceived from a higher protocol layer and may also add delimiters. Whena specific protocol layer receives a data unit from a higher protocollayer, it will embed the higher layer data unit into a data unitadhering to the rules of the given protocol layer. The term“embedding”shall refer to both encapsulation in which one data unit of a higherlayer is placed into one data unit of a given layer, and tosegmentation, where one data unit of a higher layer is segmented into aplurality of data units of the given protocol layer.

An important aspect of the layering scheme is that the different layersare “transparent”. This means that the peers in a layer are oblivious towhat happens in another layer.

Typically, each protocol layer will perform some type of transmissioncontrol for its data units. Such transmission control can e.g. comprisethe performing of a certain type of forward error correction, thesetting of parameters associated with an automatic repeat request (ARQ)function, the scheduling of data units, or the performing of comparableoperations.

It is known to implement protocol layers in such a way that they can beoperated in a specific mode with respect to the transmission control. Asan example, a so-called numbered mode (or I-mode) and a so-calledunnumbered mode (UI-mode) are known. In the numbered mode, if it isdetermined that a sent data unit was not correctly received by thereceiving peer, then the sending peer performs retransmission of saiddata unit. In this way it can be assured that all packets are correctlytransmitted, although this may increase the delay, depending on how manypackets have to be transmitted. On the other hand, in the unnumberedmode, no retransmissions are provided. This has the advantage of lessdelay, but the transmission reliability depends on the quality of thephysical connection.

The possibility of setting a given protocol layer implementation into aspecific transmission control mode has the advantage that the selectionof the mode can e.g. be performed by a control procedure from a higherprotocol layer, in order to optimize the sending of data units from saidhigher protocol layer. However, it does not provide very muchflexibility, as a given protocol layer will typically handle a varietyof different types of data units, that require different controlsettings with respect to the optimization of the sending of the giventype of data unit. As an example, if an application layer is sending acomputer file, it desires to ensure a reliable transmission, and maytherefore want to set a lower layer protocol implementation into thenumbered mode, or the application layer may want to send data thatrequires real-time transmission, such as a video stream belonging to avideo telephone, in which case transmission speed is more important thanreliability, such that the application layer may want to set a lowerlayer protocol implementation into the unnumbered mode. However, if bothcomputer file data and video data are being sent, then the setting ofthe lower layer protocol implementation into a given transmissioncontrol mode will not provide an optimum solution.

EP-0 973 302 A1 addresses this problem and proposes a system, in which agiven protocol layer that receives higher data unit layers and embedsthese higher data layers into data units of said given layer, isarranged to discriminate the higher layer data unit layers by readingthe header information and determining the type of the higher layer dataunit. Then, a classification is performed in accordance with theidentified type. In this, way, the given protocol layer can flexibly setthe transmission reliability of its data units depending on the type ofthe higher layer data unit that is embedded in its own data units. As anexample, if the system of EP-0 973 02 A1 is applied to a link layer inthe TCP/IP suite, then the link layer can identify if the network layerIP data unit that it receives carries a TCP data unit, in which case thelink layer data units are sent in the numbered mode, or if the networklayer IP data unit carries UDP data unit, in which case the link layerdata units are sent in the unnumbered mode.

However, the system of EP-0 973 302 A1 is not always practical, as itrequires the parsing of higher layer data units in order to identifytype information, which e.g. does not work when the higher layer dataunit has an encrypted header and/or payload.

EP-0 959 589 A2 describes a system and method for link layer and MAClayer transaction completion procedures. It discusses the problem ofhaving to maintain a protocol state over long periods of inactivity whenusing the radio link protocol (RLP) or the mobile data link protocol(MDLP). It is indicated as desirable to find a procedure for efficientlyending transactions. The idea of indicating the end of a temporary blockflow in each radio link control (RLC) block, as suggested by GPRS isviewed as wasteful. In order to solve this problem, the documentsuggests a procedure, where the begin of a transaction is marked by aBEGIN PDU, where said PDU may contain a transaction size indicator thatidentifies the number of data blocks in the transaction.

WO 99/27464 and the paper “Performance Analysis of Data PacketDiscarding in ATM Networks” by Kim et al. indicate that the sending ofTCP packets over ATM networks leads to specific problems if individualATM cells are dropped at congested ATM switches, because the loss of asingle cell carrying a part of a packet will corrupt the entire packet.The concepts of PPD (partial packet discard) and EPD (early packetdiscard) as mechanisms that avoid these problems are described. In PPD,whenever a cell has been discarded by a switch due to congestion, thesubsequent cells belonging to the same packet (except the last cell) areintentionally discarded. The intention is to conserve bandwidths andbuffer space. EPD is designed to prevent unnecessary buffering of cells.This is done by setting a buffer threshold and testing the threshold todetermine whether or not there is room in the buffer for the entirepacket before buffering any cells. If the threshold is exceeded, all ofthe cells in the packet are dropped (except the last cell).

It is desirable to provide an improved method and system of processingdata units of a higher protocol layer at a given protocol layer, whichis simple to implement, but flexibly provides improved transmissionproperties.

SUMMARY OF THE INVENTION

In accordance with an embodiment of the present invention, at a givenprotocol layer, e.g. a link layer L2, one or more numeric values of oneor more numerically quantifiable parameters associated with a receivedgiven data unit of a higher protocol layer, e.g. the network layer L3,are determined. In other words, one value of one numericallyquantifiable parameter can be determined, or several values of onenumerically quantifiable parameter, or one or more respective values foreach of a plurality of numerically quantifiable parameters. The at leastone numeric value is not derived from information contained in the givendata unit of the higher protocol layer. In other words, instead ofanalyzing the content of the higher layer data unit, one or more simplephysical properties that are numerically evaluatable are measured, andthe embedding and/or transmission control is performed in accordancewith the determined value. Consequently, no parsing of higher layer dataunits or other similar complicated processing is necessary.

As an example, a numerically quantifiable parameter can be the size ofthe higher layer data unit. In other words, at a given protocol layere.g. L2, a higher layer data unit, e.g. from the L3 layer, is received,and the size of said L3 data unit is measured. Then the embeddingoperation for embedding said L3 data unit into one or more L2 dataunits, or the transmission control operation for transmitting the one ormore L2 data units into which said L3 data unit has been embedded, isperformed in accordance with the result of said size measurement.

Preferably, the size measurement is used as a basis for adjusting thetransmission control to optimize predetermined target properties. Morespecifically the L2 data units are transmitted with parameters set foroptimizing throughput if the L3 data unit falls into a predeterminedsize range, and otherwise the L2 data units are transmitted withoptimized delay. Namely, if the L3 data unit is found to have a sizeindicative of a maximum size e.g. falls into a range around or is equalto the TCP maximum segment size if the L3 data units carry TCP dataunits, then the transmission of the L2 data units, into which said L3data unit has been embedded, is optimized for throughput, as it may beassumed that the maximum size L3 data unit belongs to a larger amount ofdata being sent from above the L3 layer. On the other hand, if the L3data unit is smaller in size, then the transmission control is optimizedfor delay, as it can be assumed that the smaller L3 data units areassociated with control operations, such as synchronization oracknowledgment messages, where delay optimization is more suitable thanthroughput optimization.

Other examples of a numerically quantifiable parameter that can be usedin the context of the present invention are a buffer fill level of abuffer holding data units of the upper protocol layer (e.g. L3), or of abuffer holding data units of the protocol layer (e.g. L2) receiving theupper layer data units. Another numerically quantifiable parameter isthe inter-arrival time of the upper layer data units i.e. the time thatpasses between the arrival of two consecutive upper layer data units.

Each of the given examples of numerically quantifiable parameters can beused alone as a basis for providing one or more values to be used inperforming the embedding and/or transmission control, or can be usedtogether with one or more of the named numerically quantifiableparameters for providing such values to be used in performing theembedding and/or transmission control.

According to a preferred embodiment, the method of the presentapplication also comprises a step of discriminating a group of dataunits of the higher protocol layer to which the higher layer data unitbelongs. This discrimination can occur on the basis of sourceinformation and/or destination information in the higher layer data unitand/or a protocol identifier in the higher layer data unit. Especially,if the present preferred embodiment is applied in the context of TCP/IP,the discrimination can consist in determining the flow to which thehigher layer data unit belongs. A flow is defined by the source anddestination IP address, the source and destination port number and aprotocol identifier.

The result of said discrimination can be used in the transmissioncontrol procedure for the data units into which the higher data unitlayer is embedded. More specifically, referring to the above describedexample in which the size of the higher layer data unit was comparedwith a reference range or a reference value indicative of a maximum dataunit size, it is possible to enhance such a comparison by taking intoconsideration the type of the higher layer data unit. Namely, the typeof the higher layer data unit (or the type of a data unit contained inthe higher layer data unit) can be used as a means for determining areference range or reference value with which to compare the size of thehigher layer data unit. As an example, if the higher layer data unit isidentified as being of the first type (i.e. belonging to a firstpredetermined group),then the size of said higher data unit is comparedto a first size reference value (or to a first set of size referencevalues, i.e. a discrete range of values, or to a first continuous rangeof values), whereas if the higher layer data unit is discriminated asbeing of a second type (i.e. belonging to a second predetermined group),then the size of said higher layer data unit is compared to a secondsize reference value (or to a second set of size reference values, or toa second continuous range of values).

On the other hand, the result of said discriminating step can also beused as a basis for determining the numerically quantifiable parameterof which a numeric value is determined. Namely, the numericallyquantifiable parameter can be associated with a buffer fill level of abuffer holding data units of the lower protocol layer, where the numericvalue is the number of data units of, the lower protocol layer (e.g. L2)in the buffer that embed data units of the higher protocol layersbelonging to the discriminated group, e.g. belonging the discriminatedflow. Equally, when using the inter-arrival time of the higher layerdata unit as the numerically quantifiable parameter, then the numericvalue can be chosen as the inter-arrival time value for those higherlayer data units belonging to the discriminated group. In the lattercase, i.e. when determining the inter-arrival time of data unitsbelonging to a group, it is possible to add a further condition, e.g. todetermine the inter-arrival time of such data units of the group thatfall into a given size category. For example, if the group is a flow andthe size category is selected to relate to data units that contain anacknowledgement (i.e. have a minimum size), then it is possible to usethe inter-arrival time of the acknowledgment data units in the flow as abasis for the transmission control.

The transmission control performed in accordance with the numeric valueof the numerically quantifiable parameter can consist in any suitablemeasures such as the adjusting of forward error correction, theadjusting of ARQ settings, or the adjusting of scheduling. Furthermore,if the embedding operation comprise a segmentation of the higher layerdata unit into several lower layer data units, then this segmentationoperation can be performed in accordance with the numeric value, namelyby adjusting the size of the lower layer segments in accordance with thedetermined value. The transmission control can consist in makingadjustments for the data units at the layer receiving the higher layerdata units, or at a layer below. For example, if the method of theinvention is applied to a link layer L2, then adjustments can be madefor the L2 data units, but also for L1 data units.

As already mentioned, the transmission control can be performed tooptimize certain target parameters, depending on the determined numericvalue. Examples of such target parameters are the throughput (the amountof payload data transported per unit of time) or the (average)transmission delay.

According to another preferred embodiment, the transmission control fortransmitting the lower layer data units, into which a higher layer dataunit has been embedded, comprises a discrimination of the lower layerdata units, such that each of the one or more lower layer data units isclassified into one of a plurality of predetermined transmissioncategories on the basis of the discrimination result. Thisdiscrimination of lower layer data units can advantageously be combinedwith the discrimination of higher layer data units in such a way thatthe lower layer data units embedding a higher layer data unit belongingto a predetermined group are themselves divided into sub-groupsassociated with the group of the higher layer data unit. For example, ifthe group to which the higher data unit (e.g. L3 data unit) belongs is aflow, then such a flow can be divided into sub-flows at the lowerprotocol layer (e.g. L2) that embeds the data units of the flow.

According to another embodiment of the invention, one or more numericvalues of a numerically quantifiable parameter are used in a congestionalleviation procedure, such that a decision step for deciding whether toperform a congestion alleviation measure with respect to a data unit ornot depends on said numeric value or values. The congestion alleviationprocedure can e.g. comprise a data unit dropping procedure and/or a dataunit marking procedure. Therefore, the congestion alleviation measurecan consist in dropping a data unit from the buffer, or in adding amarking to a data unit, said marking informing the communicationend-points that congestion is taking place. An example of such a markingis the Explicit Congestion Notification (ECN) known from TCP/IP.

For example, L3 data units received at layer 2 are buffered beforeprocessing. Furthermore, a congestion alleviation procedure forperforming a congestion alleviation measure with respect to one or morebuffered L3 data units is provided. The congestion alleviation procedurecan be triggered by a number of predetermined conditions, e.g. when alink-overload of the link over which the L2 data units are to be sent isdetected, or a buffer overflow of the buffer storing the received L3data units is detected. According to the embodiment, a decision step fordeciding whether to perform a congestion alleviation measure or notdepends on the described numeric value, e.g. on the size of the L3 dataunit, or on the inter-arrival time of L3 data units. Although the aboveexample related to the buffering of L3 data units received at L2(sometimes also referred to as service data units SDUs), the concept ofmaking a congestion alleviation decision dependent on a numeric valueassociated with a given L3 data unit is also applicable to one or moreL2 data units (L2 PDUs) in which the given L3 data unit is embedded.However, especially if the congestion alleviation procedure consists ina data unit dropping procedure, it is preferable to perform anycongestion alleviation at the highest sub-layer, i.e. at the SDU level,in order to avoid unnecessary embedding operations for data that ispossibly dropped.

The method and system of the present invention can be put to practice inany suitable or appropriate way by hardware, by software or by anysuitable combination of hardware and software.

BRIEF DESCRIPTION OF FIGURES

The present invention shall now be described by referring to detailedembodiments, which are only intended to be illustrative, but notlimiting, with reference to the appended drawings, in which:

FIG. 1 shows a flow chart for explaining an embodiment of the presentinvention;

FIG. 2 shows a flow chart for explaining another embodiment of thepresent invention, in which the numeric value is determined based ondata unit size;

FIG. 3 shows a flow chart for explaining another embodiment of thepresent invention, in which higher layer data units are additionallydiscriminated;

FIG. 4 shows a flow chart for explaining another embodiment of thepresent invention, in which the numeric value is determined based on thediscrimination result;

FIG. 5 shows an overview of a protocol structure to which the presentinvention can be applied;

FIG. 6 schematically illustrates the concept of flow-splitting in thecontext of the example shown in FIG. 5;

FIGS. 7 a-7 c show routines of an embodiment of the invention in whichdata units are buffered and a data unit dropping procedure is provided;

FIG. 8 shows an example of a data unit dropping procedure;

FIG. 9 shows a further example of a data unit dropping procedure; and

FIG. 10 shows a schematic block diagram of a system that is arranged toperform the routines and procedures of FIGS. 7 to 9.

DETAILED DESCRIPTION OF EMBODIMENTS

In the following, detailed embodiments of the present invention shall bedescribed in order to give the skilled person a full and completeunderstanding. However, these embodiments are illustrative and notintended to be limiting, as the scope of the invention is defined by theappended claims.

The following examples shall be described in the context of TCP/IP.However, it may be noted that the present invention is applicable to anyprotocol hierarchy in which higher layer data units are embedded intolower layer data units, and where a transmission control is performedfor the lower layer data units.

The following embodiments shall be described in the context of applyingthe invention to a link layer L2, said link layer embedding L3 dataunits from the network layer. However, this is only an-example, and thepresent invention can be applied at any level of a protocol hierarchyi.e. also below or above the link layer.

FIG. 1 shows a flow chart describing a first embodiment of the presentinvention. As can be seen, in a first step S1 a L3 data unit is passedto the link layer L2 below the layer L3. Then, in step S2, a numericvalue of a numerically, quantifiable parameter associated with the L3data unit is determined. It may be noted that the term “associated withthe L3 data unit” is to be understood broadly as relating to anynumerically quantifiable parameter derivable from the L3 data unit,where said parameter can relate to the L3 data unit as such, or to adata unit from a higher layer than L3 embedded in the L3 data unit.Then, in step S3, the received L3 data unit is embedded into one or moreL2 data units. Finally, in step S4, transmission control for the one ormore L2 data units and/or L1 data units that embed the received L3 dataunit is performed according to the numeric value determined in step S2.

Although the example of FIG. 1 shows steps S1 to S4 in a specificsequence, this is only an example and other arrangements of steps S1 toS4 are possible.

The adjustments performed in step S4 will depend on the specificcircumstances and the system under consideration. For example, thetransmission control may comprise adjusting a forward error correctionfor the data units of the L2 protocol layer or for the L1 data unitsbelow the L2 protocol layer. The type of forward error correction can bechosen as is desirable or appropriate. For example, the transmissioncontrol may comprise adjusting a transmission power and/or a data rate(e.g. by selecting a spreading factor in a CDMA system) over a givenlink and/or a degree of interleaving. The mentioned link can e.g. be awireless link.

If the L2 protocol layer comprises a function of providing automaticretransmission of L2 data units under predetermined conditions, then thetransmission control may. comprise adjusting said retransmissionfunction.

If the L2 protocol layer comprises a function for the scheduling of theL2 data units, then the transmission,. control may comprise adjustingsaid scheduling.

In the event that the embedding in step S3 is a segmentation operation,then the embodiment of FIG. 1 can be arranged such that the segmentationoperation is performed according to said numeric value. In other words,the segmentation operation in dependence on the numeric value can be analternative to making the transmission control in step S4 dependent onthe numeric value, or the segmentation operation in dependence on thenumeric value can be a supplement to making the transmission control instep S4 dependent on the numeric value, i.e. can be provided togetherwith such transmission control.

The adjusting of said segmentation operation may e.g. comprise adjustingthe size of the L2 data units into which a given L3 data unit issegmented.

FIG. 2 shows a flowchart of another embodiment of the present invention.The same reference signs as in FIG. 1 refer to the same steps in FIG. 2.Namely, first an L3 data unit is passed to the L2 layer in step S1.Then, in step S21, which represents an example of the more general stepS2 shown in FIG. 1, the size of the received L3 data unit is measured.In other words, it is determined how much data is contained in thereceived L3 data unit, in any suitable dimension, such as bits or bytes.

The L2 data unit is embedded into one or more L2 units in step S3. Then,the transmission control is performed in accordance with steps S41, S42and S43, which represent a specific example of the general procedurerepresented as S4 in FIG. 1. More specifically, step S41 compares themeasured size of the L3 data unit with at least one reference size,where said reference size preferably represents a maximum data unitsize. Then, if the size of the L3 data unit is equal to the referencesize, the transmission control is optimized for throughput (steps S42),and if the size of the L3 data unit is different from the referencesize, then transmission control is optimized with respect to delay (stepS43).

In the above example, step S41 consists in comparing the measured sizewith a reference value. Naturally, the measured size can also becompared to a range of values, where said range can consist of adiscrete number of reference values, or can be continuous, or can be acombination of discrete and continuous values. Also, in the aboveexample, the reference value (or range) is indicative of a maximum dataunit size. However, this is only an example, and the reference value (orrange) can be chosen in any suitable or desirable way, depending on thegiven system and circumstances. For example, the reference value canalso be indicative of a minimum data unit size that identifies a dataunit carrying an acknowledgment.

The optimizing of transmission control for throughput can e.g. consistin reducing the amount of forward error correction and enabling ARQ forensuring transmission reliability. On the other hand, optimizingtransmission control for reducing delay can consist in increasingforward error correction, but disabling ARQ. This shall be explained inmore detail in the following in the specific context of TCP/IP.

Non-real-time applications often run on top of TCP, whereas real-timeapplications usually run on top of UDP. The main design requirement forlink layer (L2 ) protocols for non-real time applications is throughputoptimization. This is for example achieved by tuning the trade-offbetween forward error correction and ARQ, so that the overall throughputis optimized. It is possible to obtain higher throughputs by weakeningforward error correction and enabling ARQ. Throughput is the quantity oftransmitted payload per unit of time. The throughput increases withdecreasing forward error correction, as forward error correctionincreases overhead, which leads to a reduced amount of payload beingtransmitted.

In an encryption based forward error correction data is divided intoblocks, where each block is the result of an encryption operation thatcombines the payload with redundancy information that allows a decisionon the part of the receiver whether a block has been correctly receivedand decrypted. Then a block error rate may be defined as the rate ofevents in which a received block is judged as having an error. It may benoted that reduced forward error correction leads to an increased blockerror rate, but it can be shown that throughput can nonetheless beincreased. For example, when calculating throughput as the product ofdata rate multiplied by (1—block error rate), a data rate of 8 kbit/sand block error rate of 0.01 leads to a throughput of 7.92 kbit/s,whereas a data rate of 12 kbit/s (achieved by less forward errorcorrection) and a block error rate of 0.1 (due to the reduced forwarderror correction) lead to a throughput of 10.8 kbit/s. Consequently,although the block error rate is ten times higher, the increased payloaddata rate leads to an overall increased throughput.

The problem is that even in a flow corresponding to a TCP based bulkdata transfer, which should overall be optimized for throughput, thereare individual data units or segments, which are delay sensitive.Examples are the connection set-up messages, which should be exchangedas quickly as possible to be able to start with data transmission.Another example is the TCP acknowledgement messages in reversedirection, or HTTP requests, which should be received as soon aspossible.

In order to differentiate between L3 data units that should be optimizedfor throughput and such that should be optimized for delay reduction,the present embodiment determines the size of the L3 data unit, see stepS21 in FIG. 2.

Namely, L3 data units for which the throughput should be optimized ingeneral belong to a larger application data amount, which is segmentedinto transport layer data units, e.g., TCP segments. Therefore, thesetransport layer data units, which are then embedded in network layer (L3) data units generally have a maximum transfer unit size, e.g. the TCPmaximum segments size (MSS).

Consequently, as already mentioned, step S41 of FIG. 2 can beimplemented in such a way that the comparison is conducted with respectto a reference value or reference range indicative of a predeterminedmaximum transfer unit size. Typically, the value of the maximum transferunit size is 256 byte, 512 byte, 536 byte or 1460 byte, such that takinginto account the IP header of 40 byte, suitable reference size valuesused in step S41 could be 296 byte, 552 byte, 576 byte or 1500 byte.

As already mentioned, step S41 can be implemented in such a way that themeasured size of the L3 data unit is compared with a plurality ofreference sizes, e.g. the previously mentioned series of discrete values296, 552, 576 and 1500 bytes, or with a suitable continuous range, orwith a combination of discrete values and continuous values. Then, ifthe measured size of the L3 unit is equal to any one of the plurality ofreference sizes, or falls into the predetermined range or ranges, thenstep S42 is enabled, to thereby optimize the transmission control forthroughput.

In this connection, it can be mentioned that the reference size valuesmay not only take into account the IP header, but also the possibilityof header compression. In other words, the plurality of size referencevalues used in step S41 also contains a set of values that take intoaccount header compression.

In the example of FIG. 2, other data units having different sizes thanthe reference size are sent with optimized delay (step S43). In otherwords, they are sent with minimum delay. In the example of TCP/IP thismeans that all pure TCP control messages (such as synchronizationmessages, acknowledgement messages, . . . ) are sent with minimum delay.Also, the final data unit belonging to a larger application data amountis also transmitted with optimized (e.g. minimum) delay.

As already indicated above, delay optimization can for example beachieved by choosing the appropriate coding scheme and/or adjusting thetransmission power. If one assumes an additional delay for aretransmission to be 100 ms, one can conclude that the transmissiondelay becomes less and less important for small data units. Therefore,it is better to use stronger forward error correction (e.g. moreredundancy) and/or higher transmission power to improve the mean delay.

For example, if one considers a data unit of 100 byte size, and usingthe previously mentioned example values of a data rate of 8 kbit/s,block error rate of 0.01 and a block size of 20 byte, then a mean delayof 100+5 ms results, or assuming a data rate of 12 kbit/s, a block errorrate of 0.1 and a block size of 30 byte, then a mean delay of 80+40 msresults. In the first example, one needs five blocks to transmit 100byte, in the second only 4, due to the increased data rate and thereforeblock size. In the first case, the probability that the one of the fiveblocks is corrupted is approximately 5%, leading on average to anadditional delay of 5 ms. The same calculation provides an additionaldelay of 40 ms for the second case. Consequently, the increased forwarderror correction, although the data rate is reduced, leads to animproved mean delay.

Another example is when the transmission control comprises regulationvia the transmission power. This can be achieved e.g. by setting atarget signal-to-interference ratio for the desired link, which ismaintained by a power control loop. A higher signal-to-interferenceratio results in an improved link quality, i.e. the number oftransmission errors on the link is reduced, at the price of increasedtransmission power. Less transmission errors reduce the delay of errorrecovery and therefore the mean transmission delay is reduced.

In the example of FIG. 2, the outcome of decision step S41 is to eitheroptimize the transmission for throughput or for delay. Naturally, thisis only an example. The transmission control can also be optimized withregard to other target parameters, as is suitable or desired for aspecific application or system. Such target parameters include systemresources like e.g. transmission power, spreading codes, number ofassigned physical channels. Furthermore, the outcome of decision stepS41 can also lead to more than the two procedures S42, S43. For example,it is possible that step S41 is implemented in such a way that the L3data unit size is compared to n reference sizes or n reference ranges,and the outcome leads to a corresponding number of n transmissioncontrol procedures, each transmission control procedure corresponding toone size reference value or range, and additionally one further defaulttransmission control procedure for all those L3 data units that do nothave the size of one of the n size reference values or does not fallinto one of the n ranges.

In the embodiments described above, the transmission control performedin step S4 or steps S41 to S43 was performed on the basis of the numericvalue determined in step S2. It should be noted that the transmissioncontrol can also be based on further measurements or determinationsconducted with respect to a received L3 data unit. Namely, as shown inFIG. 3, in which steps S1, S21 and S3 are identical to the correspondingsteps in FIG. 2, such that a further description is not necessary, astep S5 is performed after step S3, said step S5 discriminating a groupto which the L3 data unit belongs. Then, in step S40, which is anexample of general step S4 of FIG. 1, the transmission control for theone or more L2 data units that embed the received L3 data unit, isperformed on the basis of the numeric value determined in step S21 andthe discrimination result of the discrimination step S5.

Preferably, the discrimination is performed on the basis of destinationinformation contained in the L3 data unit and/or a protocol identifiercontained in the L3 data unit. For example, the group into which the L3data unit is classified can be the flow to which it belongs. As alreadymentioned previously, in the context of TCP/IP, the group into which theL3 data unit is classified can be the flow to which it belongs, and theflow is defined by a source and destination IP address, a source anddestination port number, and a protocol identifier. As another example,the group to which an L3 data unit belongs can also be determined by thetype of payload being transmitted, which type can e.g. be determined bychecking a protocol identifier in the data unit. This means checking theprotocol identifier of the L3 data unit itself, or checking one or moreprotocol identifiers of data units being transported as payload in theL3 data unit.

The performing of the transmission control in step S40 can be conductedin any suitable or desirable way, depending on the specificcircumstances of the application. For example, procedure S40 of FIG. 3can be arranged in a similar way as steps S41, S42 and S43 of FIG. 2,with the addition that the size reference used in the comparison is alsoselected in dependence on the group into which the L3 data unit isclassified. For example, the group can be determined on the basis of thetype of data unit embedded in the L3 data unit, e.g. the discriminationconsists in determining if the IP data unit carries a TCP data unit or aUDP data unit. If it is determined that it carries a TCP data unit, thena first set of size reference values can be used, and if it isdetermined that the IP data unit carries a UDP data unit, then a secondset of size reference values can be used in the comparison.

In FIG. 3, the discrimination result obtained in step S5 is used as anelement in the transmission control operation of procedure S40. However,the discrimination of a received L3 data unit into one of apredetermined number of groups can also be used as a basis fordetermining the numeric value that is then later to be used in thetransmission control operation. This is shown in FIG. 4. After havingreceived the L3 data unit in step S1, the discrimination step S5 isperformed. Then, in step S22, which is an example of the general step S2shown in FIG. 1, the numeric value is determined on the basis of thediscrimination result. Thereafter steps S3 and S4 are conducted, asalready explained in connection with FIG. 1.

For example, the numerically quantifiable parameter can be associatedwith a buffer fill level of a buffer holding L2 data units, where thenumerically quantifiable parameter is the number of L2 data units in thebuffer that embed L3 data units belonging to the group discriminated instep S5. The numerically quantifiable parameter can alternatively be theinter-arrival time of L3 data units belonging to the discriminatedgroup. The advantages of determining the numerically quantifiableparameter in this way shall be discussed in more detail with respect tothe example shown in FIG. 5.

FIG. 5 shows an embodiment of the present invention implemented in thecontext of a link layer operating in accordance with the universalmobile telephone system (UMTS) as e.g. described in the TechnicalSpecification 3G TS 25.301 V3.3.0 (1999-12), published by the 3rdGeneration Partnership Project (http://www.3gpp.org). This document isherewith fully incorporated by reference into the present disclosure.

It may be noted that FIG. 5 shows a preferred application of the presentinvention. However, the present invention is by no means restrictedthereto. Much rather, the method and system of the present invention canbe applied in the context of any mobile communication device, e.g. alsoone operating in accordance with the general package audio service(GPRS) or any other mobile communication standard. Furthermore, a methodand system of the present invention are naturally not restricted to theapplication in mobile communication systems, but can be applied in anycommunication system having a protocol hierarchy.

In FIG. 5, a radio resource control (RRC) procedure 201 is provided,which controls the operation of other parts of the general L2implementation, said L2 protocol implementation consisting of sub-layersL2/PDCP, L2/BMC, L2/RLC and L2/MAC. FIG. 5 schematically shows controlconnections 204, 205, 206, 207 and 208 to the other procedures, thatshall be described in the following. Namely, a one or more packet dataconvergence protocol (PDCP) procedures 202 are implemented forperforming the functions of the packet data convergence protocol.Furthermore, a BMC (Broadcast/Multicast Control) procedure 203 isimplemented for performing the function of controlling the sending ofdata units to a plurality of destinations, via multicasting orbroadcasting. Reference numeral 209 refers to radio link control (RLC)procedures that implement the radio link control protocol. 211identifies the medium access control (MAC) part of the L2 layer.Finally, 302 schematically represents the physical layer L1.

The radio resource control procedure 201 receives control informationfrom the higher layer L3 (not shown). The user-plane passes down L3 dataunits that are to be embedded into L2 data units, to the PDCP procedure202, to the BMC procedure 203 and/or a RLC procedure 209.

Reference numeral 210 represents logical channels in the L2 layer, whilereference numerals 301 refers to transport channels between L2 and L1.

The general control for the L2 layer implementation is performed by theRRC procedure 201. More specifically, user data is transmitted on aradio access bearer. Via the radio resource control procedure 201, oneor more radio bearers are configured, which determine the layer 1 andlayer 2 configuration of the radio protocols. In the PDCP procedure 202,IP header compression is applied and a multiplexing of multiple trafficflows onto one logical channel is used. The ELC procedure appliesbackward error correction, such a ARQ, for a logical channel, amongother things. The MAC procedure 211 performs a scheduling of L2 dataunits and performs the distribution onto the transport channels 301.

As an embodiment of the present invention, the function of the PDCPprocedure 202 is extended by a splitting function, which separates thereceived traffic flow (e.g. an IP flow) into sub-flows, which are thentransmitted via separate RLC connections. Since IP header compression isapplied in PDCP, the necessary flow information is already available inPDCP. An example, a corresponding flow splitting is schematicallydepicted in FIG. 6. A flow of IP data units received at the PDCPprocedure 202, is split into four sub-flows, each respectively handledby a separate RLC procedure 209 a, 209 b, 209 c and 209 d.

The splitting is performed in accordance with the numeric value of thenumerically quantifiable parameter, e.g. the L3 data unit size, a bufferfill level, or an inter-arrival time. Additionally, the splitting canalso be conducted in dependence on the type of data unit.

For example, the numerical value can be the L3 unit size and the type ofdata unit being transported. Then the splitting shown in FIG. 6 can bearranged in such a way that data units having the size of anacknowledgment and being TCP data units can be transmitted with anoptimum RLC configuration, i.e. minimum delay, and the other IP dataunits are separated onto RLC connections, which are optimized for therespective data unit size and/or respective data unit type.

An alternative way of splitting the IP flow into a plurality of RLCsub-flows is to separate different phases of the IP flow, e.g. toseparate the TCP slow-start phase from the congestion avoidance phase.If the slow-start phase is configured such that a lower transmissiondelay is achieved, the end-to-end performance will be greatly enhancedand link resources (e.g. codes) are released more quickly.

Methods for reducing the transmission delays are e.g. a highersignal/interference-ratio target, stronger forward error correction,more aggressive ARQ settings etc. To differentiate the different phasesof a TCP flow, the above described methods of employing a bufferfill-level as the numerically quantifiable parameter, or using theinter-arrival time can be used. As already mentioned previously, thedetermination of an inter-arrival time can also be combined with thedetermination of a data unit size range, in that the value used as abasis for transmission control is the inter-arrival time of data unitsfalling into a predetermined size range.

For example, if the RLC buffer level is used, then it could be concludedthat if the RLC buffer fill level is below a predetermined threshold,the TCP flow is probably in the slow-start phase (or at the end ofapplication data), since no new data is arriving. Above thispredetermined threshold, or above a second predetermined threshold, itis very likely that TCP is in the congestion avoidance phase. As aconsequence, if the buffer fill level indicates a slow-start phase, thenthe L2 data units are placed into an RLC connection optimized forreducing delay, and if the buffer fill level indicates a congestionavoidance phase, then the L2 data units are placed into a RLC connectionoptimized for throughput.

Corresponding considerations apply when using the inter-arrival time ofthe IP data units as a numerically quantifiable parameter. Namely, ifthe inter-arrival time is above a predetermined threshold, then this mayindicate a slow-start phase, whereas if the inter-arrival time is belowthis same predetermined threshold, or below a second threshold, thenthis may indicate a congestion avoidance phase.

It may be noted that an alternative to splitting the flow into severalRLC sub-flows, as shown in FIG. 6, in which each stream of data units ishandled by a separate RLC procedure 209 a, 209 b, 209 c or 209 d, is totransmit all data units in one adaptive sub-flow. In this case, all dataunits are handled by the same RLC procedure, however, each data unit ishandled differently (different forward error correction, differentsegmentation sizes, different ARQ, different transmission power (e.g.different target signal-to-interference ratio), etc.).

In the previous embodiments, a numeric value associated with at leastone numerically quantifiable parameter associated with an L3 data unitwas used as a parameter for controlling the embedding of the L3 dataunit and/or 5 controlling the transmission of L2 data units embeddingsaid L3 data unit. Now, in connection with FIGS. 7 to 10, embodimentswill be described, which relate to applying the concept of employing anumerically quantifiable parameter to the performing of a congestionalleviation procedure for 10 buffered L3 data units and/or buffered L2data units.

In the following examples, the congestion alleviation procedure will bedescribed in terms of a data unit dropping procedure.

FIG. 7 a shows a routine for buffering received L3 data units. It may benoted that such received L3 (generally: higher layer) data unitsreceived at a given layer (e.g. L2 ) are referred to as service dataunits (SDUs), whereas the data units into which such an SDU is embedded(encapsulated or segmented) is referred to as a protocol data unit(PDU). As a consequence, the buffer into which such received L3 dataunits are placed can also be referred to as an SDU buffer. This SDUbuffer stores the received L3 data units before they are processed(embedded) into L2 data units. Returning to the routine of FIG. 7 a, afirst step S1 consists in passing an L3 data unit to the L2 layer, afterwhich one or more numeric values belonging to at least one numericallyquantifiable parameter associated with the received L3 data unit aredetermined in step S2. These steps S1 and S2 are just like the steps ofsame reference numeral described in connection with FIGS. 1 to 4, andcan be embodied as described in detail with respect to these Figures.Therefore, the numerically quantifiable parameter can e.g. be the dataunit size or the inter-arrival time of the data units. Finally, thereceived L3 data unit or SDU is placed into an SDU buffer in step S6,where it can be buffered until further processing of the SDU takesplace.

It may be noted that step S2 does not necessarily have to be performedprior to the buffering, and could also be performed subsequently, aswill be explained in connection with the embodiment of FIG. 9.

The buffering of received SDUs is especially advantageous in situationswhere the immediate processing at the receiving layer is not guaranteedor feasible, e.g. if the receiving layer is a link layer for sendingdata over a wireless link.

FIG. 7 b shows a routine for processing buffered SDUs, namely forembedding the SDUs into L2 PDUS. In step S31 an SDU is taken out of theSDU buffer and embedded into one or more L2 PDUs. In step S7 the one ormore resulting L2 PDUs are buffered in a PDU buffer. The buffered L2PDUs can then be transmitted according to anyone of the transmissioncontrol procedures S4, S40, S41 to S43 explained in connection withFIGS. 1 to 4. It may be noted that the processing routine of FIG. 7 bcould also be embodied by directly passing the L2 PDUs from step S31 toa transmission control procedure S4, S40, S41-S43.

FIG. 7 c shows a basic routine for managing the contents of one or bothof the SDU buffer and PDU buffer. More specifically, in a step S8 it isdetermined whether a triggering condition for performing dropping ofbuffered data units is met or not, and if it is, a data unit droppingprocedure S9 is conducted. The triggering conditions can be chosen as issuitable or desirable, e.g. a data unit dropping procedure can be calledfor if the buffer is an overflow state (e.g. the amount of data in thebuffer exceeds an overflow limit), and/or if the link over which the L2PDUs are to be transmitted is in an overload state (e.g. the bandwidthmomentarily provided by the link is lower than a predetermined limitpercentage of the bandwidth demanded for sending the data that is to betransmitted over said link).

It may be noted that the dropping of data units is not only useful torelieve an overflow or overload state at the layer where the presentembodiments are implemented, but also serves as an indication to higherlayers that congestion has occurred. The slow start and congestionavoidance algorithms known from TCP/IP are examples of mechanisms withwhich flow control can respond to data unit loss along a transmissionpath.

The data unit dropping procedure S9 comprises a decision step fordeciding whether a buffered data unit under consideration is to bedropped or not, where said decision step depends on one or more numericvalues that belong to at least one numerically quantifiable parameterassociated with a given L3 data unit. The given L3 data unit is thebuffered data unit under consideration if this data unit underconsideration is an L3 data unit (i.e. if the dropping of an SDU isconsidered, then the numerically quantifiable parameter is associatedwith said SDU under consideration, e.g. the size of said SDU or theinter-arrival time associated therewith), and said given L3 data unit isthe L3 data unit embedded in said data unit under consideration if thedata unit under consideration is an L2 data unit (i.e. if the droppingof an L2 PDU is considered, then the numerically quantifiable parameteris associated with the SDU embedded in the L2 PDU under consideration,e.g. the size of said SDU or the inter-arrival time associatedtherewith).

As indicated above, the data dropping, procedure can be conducted in oneor both of the SDU buffer and the PDU buffer. However, it is preferableto perform any data unit dropping at the highest sub-layer, i.e. at theSDU buffer, in order to avoid unnecessary embedding operations for datathat is possibly dropped.

FIG. 8 shows an example of a data unit dropping procedure S9. In a firststep S91, a first data unit is considered. The selection of the dataunit to be considered can be done as is suitable or desirable, and candepend on the way the data units are buffered. For example, if the dataunits are queued, then a data unit at a predetermined position in thequeue can be selected (such as the first or last data unit), or anyother type of selection routine can be chosen, such as the randomselection of a data unit.

Then, in step S92, the above mentioned decision step is performed, i.e.it is determined whether the numeric value (e.g. data unit size orinter-arrival time) of the L3 data unit or SDU associated with the dataunit under consideration (either the SDU itself or an L2 PDU embeddingthe SDU) fulfils a predetermined condition or not. If the predeterminedcondition is fulfilled, the procedure branches to step S96 and drops thedata unit under consideration. If not, the procedure branches to stepS93, where it is determined whether there are further data units presentin the buffer, beyond those already considered. If yes, then theprocedure branches to step S94, in which a next data unit is selected,and then the procedure loops back to step S92. The selection of a nextdata unit to be considered can be performed in any desirable or suitableway and will generally be linked to the method used in step S91. Forexample, S94 can consist in simply selecting the following or precedingdata unit in the queue, or in performing another random selection thatonly excludes previously selected data units.

If step S93 shows that no more data units are left that have not yetbeen considered for step S92 (which indicates that none of the dataunits in the buffer fulfilled the dropping criterion laid out by stepS92), then the procedure goes to step S95, in which a default procedurefor selecting a data unit is performed, e.g. a data unit at apredetermined position in a queue is selected, or a random selection isperformed. Then, the thus selected data unit is dropped in step S96.

The condition checked in step S92 is preferably whether the numericvalue (or values) fall above or below a specific threshold. For example,if the numeric value is the size of the L3 data unit or SDU, then it ispreferable to drop data units that exceed a certain size. The advantagesof doing this will be explained later. If the numeric value is theinter-arrival time, then it is possible to drop data units whoseinter-arrival time exceeds a certain time period, or it is possible todrop data units whose inter-arrival time falls short of a certain timeperiod.

In the procedure of FIG. 8, it was assumed that the numeric value isavailable for checking at S92. This can e.g. be the case by retrievingthe value or values determined in step S2 of FIG. 7 a. However, it isalso possible to include a determination step in the data droppingprocedure S9. This is shown in the example of FIG. 9, which relates tothe case where the numeric value is the size of the L3 data unit, andthe procedure comprises a step S97 for measuring the size, and where thedecision step is provided in S920 as a comparison of the measured sizewith a predetermined threshold Th, where the condition for dropping ismet if the measured size exceeds the threshold Th. The remaining stepsare the same as in FIG. 8 and will therefore not be described again.

The advantage of dropping data units that exceed a certain size (i.e.not dropping data units that fall below said certain size) is that oftenthe dropping of small data units will impact the data flow at higherlayers much more heavily than the dropping of larger data units. Namely,small data units will often not contain payload for a data transmission(i.e. data from yet a higher layer, e.g. an application layer), butrather signaling messages that are important for setting up a connection(such as synchronization messages), for confirming correct transmission(such as acknowledgment messages) or for releasing a connection (such asfinish messages). In TCP, examples of such signaling are SYN, ACK andFIN messages. A sender of such signaling messages can often only recoverfrom the loss of such a signaling message by performing a time-out, i.e.waiting until a predetermined time since sending the lost data unit hasexpired before undertaking any action to remedy the situation. Astime-out periods are usually set conservatively (i.e. long), thedropping of such a signaling message can have strong impact on theoverall transmission of data units, in contrast to dropping a data unitcontaining payload. Namely, most protocols for transporting data unitsare specifically equipped and designed to handle the loss of payload,such that the impact is less severe. As a consequence, overallperformance can be enhanced by not dropping small data units, i.e. onlydropping data units that exceed a certain size threshold.

As an example, SYN messages are sent at the beginning of a connectionset up. If one is lost, the set up will not continue until a time-outhas occurred. Consequently, the start of sending payload is stronglydelayed. FIN messages are sent at the end of a connection, indicating aclosing of the connection. Dropping such a data unit and consequentlythereby providing the sender of, that message with an indirectcongestion indication, is of no value, as this sender is at the end ofthe transmission, anyway. In other words, it is much better to drop adata unit from a different source, where the congestion indication willstill have an effect.

Dropping ACK messages does not improve the traffic situation as TCP ACKsare cumulative.

It may be added that it is also preferable to drop larger data units inplace of smaller ones because the dropping of small data units willgenerally not improve the buffering delay at the link. In other words,more is done to alleviate the condition that triggered the data unitdropping (e.g. link overload or buffer overflow) if large data units aredropped than if small ones are dropped.

From the above discussion, it can be seen that the setting of thethreshold Th is preferably done in dependence on the possible signalingmessages sent at higher layers. As an example, if the above embodimentis applied to a layer 2 on top of which TCP is run, then the thresholdTh should be set such SYN, ACK and FIN messages are not dropped, i.e.the threshold Th should be set larger or equal to the expected size ofthe SYN, ACK and FIN messages.

It may be added that the step of discriminating a group into an L3 dataunit belongs (e.g. whether it belongs to a specific flow), describedabove in connection with step S5 in FIGS. 3 and 4, can also be used inconnection with data unit dropping procedure. Namely, in addition tomaking the data unit dropping procedure dependent on the numeric value,the result of such a discrimination step can also be taken into account.

For example, if the discrimination step S5 consists in determining whichflow an L3 data unit belongs to, then the decision step S92 or S920 canbe amended to also take the discriminated flow into account, e.g. suchthat no data units from a specific flow or group of flows are dropped,or that only data units from the specific flow or flow group aredropped.

FIG. 10 shows a schematic representation of a system in which themethods described in connection with FIGS. 7 to 9 can be applied. The L2implementation comprises an SDU buffer 101, an embedder 103 and a PDUbuffer 104, as well as a controller 102 for controlling the operation ofeach of the entities 101 to 103. The controller 102 is arranged toexecute suitable routines, e.g. the routine shown in FIG. 7 a forbuffering received SDUs in the SDU buffer 101 and the routine shown inFIG. 7 b for operating the embedder 103 and PDU buffer 104. The term“implementation” refers to any hardware, software or combination ofhardware and software suitable to execute the described routines andprovide the desired functionality. As a consequence, the entities101-104 can also be provided by any suitable hardware, software orcombination of hardware and software.

In the above examples of FIGS. 7 to 10, the congestion alleviationprocedure was shown as a data unit dropping procedure. Alternatively oradditionally, the congestion alleviation procedure can also comprise adata unit marking procedure, in which the congestion alleviation measuredoes not consist in dropping the data unit, but adding an indicator ornotification at a predetermined position (e.g. in a specified headerfield) in the data unit, where said indicator or notification informsthe communication end-points of the data unit that congestion is takingplace. An example of such a concept is the Explicit CongestionNotification (ECN) known in the context of TCP/IP, see e.g. RfC 3168.

Data unit marking should preferably be implemented with respect to theSDU buffer, as the SDUs will be marked if the decision step for decidingon the taking of a congestion alleviation measure decides to take ameasure.

If a combination of data unit dropping and data unit marking is used acongestion alleviation procedure, then it is preferable that the SDUs bediscriminated, e.g. according to protocol identifiers, and SDUsbelonging to a predetermined category should be dropped and not marked.In other words, data units for which it does make sense to add amarking, such as User Datagram Protocol (UDP) data units, should not bemarked, but rather dropped if it is decided to take a congestionalleviation measure. Namely, as is well known, UDP peers are notresponsive to congestion, such that marking with a congestionnotification makes no sense. With respect to data units discriminatedinto a category that is responsive to congestion, such as TransmissionControl Protocol (TCP) data units, the congestion alleviation measurecan be either dropping or marking, depending on the specific preferencesor desires. For example, for congestion responsive SDUs the decisionstep can be implemented in such a way that data unit marking isperformed for a first triggering condition (e.g. a triggering conditionindicating that the SDU buffer is in danger of becoming congested, likethe exceeding of a first threshold buffer fill level) and data unitdropping is performed for a second triggering condition (e.g. exceedinga second threshold higher than the first threshold, which means that thebuffer is congested, such that the buffer load must be reduced).

Although the present invention has been described with reference tospecific embodiments these embodiments only serve to provide the skilledperson with a full and complete understanding of the invention, but arenot intended to limit the scope. The scope of the invention is muchrather defined by the appended claims. Reference numerals in the claimsare intended to make the claims easier to understand and also do notrestrict the scope.

1. A method of processing, in a transmitter, a data unit of a firstprotocol layer for transmission in a data unit based communicationsystem, comprising the steps of: passing to a second protocol layer agiven data unit of said first protocol layer that is to be transmitted,said second protocol layer lying below said first protocol layer;measuring one or more numeric values, said one or more numeric valuesbelonging to at least one numerically quantifiable parameter associatedwith said given data unit of said first protocol layer; embedding saidgiven data unit of said first protocol layer into one or more data unitsof said second protocol layer, in an embedding operation; adjusting atransmission control procedure for said one or more data units of saidsecond protocol layer that embeds said given data unit of said firstprotocol layer; wherein said embedding operation or said step ofadjusting the transmission control procedure is performed in accordancewith said one or more numeric values of said at least one numericallyquantifiable parameter; and transmitting said one or more data units ofsaid second protocol layer according to the adjusted transmissioncontrol procedure.
 2. The method of claim 1, wherein said at least onenumerically quantifiable parameter is the size of said given data unitof said first protocol layer.
 3. The method of claim 1, wherein said-atleast one numerically quantifiable parameter is associated with a bufferfill level of a buffer holding data units of said first protocol layeror said second protocol layer.
 4. The method of claim 1, wherein said atleast one numerically quantifiable parameter is an inter-arrival time ofdata units of said first protocol layer.
 5. The method of claim 1,furthermore comprising a step of discriminating a group of data units ofsaid first protocol layer to which said given data unit of said firstprotocol layer belongs.
 6. The method of claim 5, wherein said group isdiscriminated on the basis of source information, destinationinformation or a protocol identifier contained in said data units ofsaid first protocol layer.
 7. The method of claim 5, wherein saidtransmission control for said one or more data units of said secondprotocol layer that embed said given data unit of said first protocollayer is also performed in accordance with a result of saiddiscriminating step.
 8. The method of claim 5, wherein said numericvalue is determined on the basis of a result of said discriminatingstep.
 9. The method of claim 8, wherein said numerically quantifiableparameter is associated with a buffer fill level of a buffer holdingdata units of said second protocol layer, said numerically quantifiableparameter being the number of data units of said second protocol layerin said buffer that embed data units of said first protocol layerbelonging to said group.
 10. The method of claim 8, wherein saidnumerically quantifiable parameter is the inter-arrival time of dataunits of said first protocol layer belonging to said group.
 11. Themethod of claim 1, wherein said transmission control comprises adjustinga forward error correction for said data units of said second protocollayer or for data units of a third protocol layer below said secondprotocol layer.
 12. The method of claim 11, wherein a function controlsthe sending of said data units of said second protocol layer over alink, and said transmission control comprises adjusting a transmissionpower, a data rate over a wireless link or a degree of interleaving. 13.The method of claim 1, wherein said second protocol layer comprises afunction of providing automatic retransmission of data units of saidsecond protocol layer under predetermined conditions, and wherein saidtransmission control comprises adjusting said retransmission function.14. The method of claim 1, wherein said second protocol layer comprisesa function for scheduling of said data units of said second protocollayer, and wherein said transmission control comprises adjusting saidscheduling.
 15. The method of claim 1, wherein said embedding comprisesa segmentation operation for data units of said first protocol layer,and wherein said transmission control comprises adjusting saidsegmentation operation.
 16. The method of claim 15, wherein theadjusting of said segmentation operation comprises adjusting the size ofthe data units of said second protocol layer into which said given dataunit of said first protocol layer is segmented.
 17. The method of claim1, wherein said transmission control comprises discriminating said oneor more data units of said second protocol layer in which said givendata unit of said first protocol layer is embedded on the basis of saidnumeric value, and placing each of said one or more data units of saidsecond protocol layer into one of a plurality of predeterminedtransmission categories on the basis of said discrimination result. 18.A data unit based communication system including implementations of afirst protocol layer and a second protocol layer, said first protocollayer lying above said second protocol layer, said system comprising:means for passing a given data unit of said first protocol layer that isto be transmitted to said second protocol layer; means for determiningone or more numeric values belonging to at least one numericallyquantifiable parameter associated with said given data unit of saidfirst protocol layer; means for embedding said given data unit of saidfirst protocol layer into one or more data units of said second protocollayer in an embedding operation; and means for adjusting transmissioncontrol procedure for said one or more data units of said secondprotocol layer wherein said means for embedding and means for adjustingperform in accordance with said one or more numeric values of said atleast one numerically quantifiable parameter.
 19. The data unit basedcommunication system of claim 18, wherein said at least one numericallyquantifiable parameter is the size of said given data unit of said firstprotocol layer.
 20. The data unit based communication system of claim18, wherein said at least one numerically quantifiable parameter isassociated with a buffer fill level of a buffer holding data units ofsaid first protocol layer or said second protocol layer.
 21. The dataunit based communication system of claim 18, wherein said at least onenumerically quantifiable parameter is an inter-arrival time of dataunits of said first protocol layer.
 22. The data unit basedcommunication system of claim 18, further comprising means fordiscriminating a group of data units of said first protocol layer towhich said given data unit of said first protocol layer belongs.
 23. Thedata unit based communication system of claim 22, wherein said means fordiscriminating said group on the basis of source information,destination information, or a protocol identifier contained in said dataunits of said first protocol layer.
 24. The data unit basedcommunication system of claim 22, wherein said means for performingtransmission control for said one or more data units in accordance witha result of said discriminating.
 25. The data unit based communicationsystem of claim 22, wherein said means for determining determines anumeric value on the basis of a result of said discriminating step. 26.The data unit based communication system of claim 25, comprising abuffer for holding data units of said second protocol layer, saidnumerically quantifiable parameter being the number of data units ofsaid second protocol layer in said buffer that embed data units of saidfirst protocol layer belonging to said group.
 27. The data unit basedcommunication system of claim 25, comprising a timer for measuring aninter-arrival time of data units of said first protocol layer belongingto said group, wherein said numerically quantifiable parameter is theinter-arrival time of data units of said first protocol layer belongingto said group.
 28. The data unit based communication system of claim 18,wherein said transmission control comprises adjusting a forward errorcorrection for said data units of said second protocol layer or for dataunits of a third protocol layer below said second protocol layer. 29.The data unit based communication system of claim 28, further comprisinga function for controlling the sending of said data units of said secondprotocol layer over a link, and said transmission control comprisesadjusting a transmission power, a data rate over said link, or a degreeof interleaving.
 30. The data unit based communication system of claim18, wherein said implementation of said second protocol layer comprisesa function of providing automatic retransmission of data units of saidsecond protocol layer under predetermined conditions, and wherein saidtransmission control comprises adjusting said retransmission function.31. The data unit based communication system of claim 18, wherein saidimplementation of said second protocol layer comprises a function forscheduling of said data units of said second protocol layer, and whereinsaid transmission control comprises adjusting said scheduling.
 32. Thedata unit based communication system of claim 18, wherein saidimplementation of said second protocol layer is arranged to perform asegmentation operation for data units of said first protocol layer, andwherein said transmission control comprises adjusting said segmentationoperation.
 33. The data unit based communication system of claim 32,wherein the adjusting of said segmentation operation comprises adjustingthe size of the data units of said second protocol layer into which saidgiven data unit of said first protocol layer is segmented.
 34. The dataunit based communication system of claim 18, wherein said transmissioncontrol comprises discriminating said one or more data units of saidsecond protocol layer in which said given data unit of said firstprotocol layer is embedded on the basis of said numeric value, andplacing each of said one or more data units of said second protocollayer into one of a plurality of predetermined transmission categorieson the basis of said discrimination result.
 35. The method of claim 1further comprising the steps of: performing, in a transmitter, abuffering operation for one or both of said data unit of said firstprotocol layer and one or more data units of said first protocol layerinto which said data unit of said second protocol layer is initiallyembedded, performing, in the transmitter, a congestion alleviationprocedure for buffered data units if one or more predeterminedtriggering conditions are fulfilled, said congestion alleviationprocedure comprising: deciding whether congestion alleviation measure isto be performed with respect to a buffered data unit underconsideration, said decision step depending on the determined one ormore numeric values, said given data unit of said first protocol layerbeing the data unit under consideration if the data unit underconsideration is a data unit of the first protocol layer, and said givendata unit of said first protocol layer being a data unit of said firstprotocol layer embedded in said data unit under consideration if thedata unit under consideration is a data unit of said second protocollayer.
 36. The method of claim 1, wherein the step of embedding or thestep of adjusting transmission control is performed in the transmitterin accordance with the one or more numeric values of the at least onenumerically quantifiable parameter between a first mode, optimizing datathroughput and a second mode, optimizing data.